package com.globapp.findandkeep;

import dialogs.SeleccionarRastreoDialog;
import dialogs.SeleccionarRastreoDialog.RastreoDialogListener;
import extras.Utils;
import persistance.Persistencia;
import servicios.GuardianService;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.ToggleButton;

public class MainActivityFragment extends Fragment implements
RastreoDialogListener{
	Persistencia persistencia;
	ToggleButton btnGuardian;
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		// Inflate the layout for this fragment
		return inflater.inflate(R.layout.activity_main, container, false);
		
	}
	
	  public void onActivityCreated(Bundle savedInstanceState) {
	        super.onActivityCreated(savedInstanceState);
	        

			persistencia = new Persistencia(getActivity().getApplicationContext());

			// Se inflan los widgets
			Button btnRegistrar = (Button) getActivity().findViewById(R.id.btn_registrar_chip);
			Button btnRastreo = (Button) getActivity().findViewById(R.id.btn_modo_rastreo);
			btnGuardian = (ToggleButton) getActivity().findViewById(R.id.btn_modo_guardian);
			// Asignamos funcionamiento a los botones

			btnRegistrar.setOnClickListener(new View.OnClickListener() {

				@Override
				public void onClick(View v) {
					// Llamamos a la activity que registra los dispositivos
					Intent nIntent = new Intent(getActivity().getApplicationContext(),
							RegistrarDispositivoActivity.class);
					startActivity(nIntent);

				}
			});

			btnRastreo.setOnClickListener(new View.OnClickListener() {

				@Override
				public void onClick(View v) {
					SeleccionarRastreoDialog dialogoRastreo = new SeleccionarRastreoDialog();
					dialogoRastreo.listaDispositivos = persistencia
							.getDispositivosRegistrados();
					dialogoRastreo
							.show(getFragmentManager(), "dispositivos");

				}
			});

			btnGuardian
					.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
						public void onCheckedChanged(CompoundButton buttonView,
								boolean isChecked) {
							if (isChecked) {
								if (!Utils.isMyServiceRunning(
										GuardianService.class,
										getActivity().getApplicationContext())) {
									empezarServicio();
								}
							} else {
								if (Utils.isMyServiceRunning(GuardianService.class,
										getActivity().getApplicationContext())) {
									terminarServicio();
								}
							}
						}
					});


	  }
	  

		/**
		 * el metodo se llama cuando se selecciona un item de la lista de
		 * dispositivos registrados se busca el dispositivo asociado y se empeiza la
		 * activity de rastreo
		 * 
		 * @param idDispositivo
		 */
		@Override
		public void onDispositivoSelected(int idDispositivo) {
			Intent mIntentRastreo = new Intent(this.getActivity().getApplicationContext(),
					RastreoActivity.class);
			mIntentRastreo.putExtra(RastreoActivity.TAG_SSID, idDispositivo + 1);// +1
																					// poruqe
																					// la
																					// posicion
																					// arranca
																					// en
																					// 0
			this.startActivity(mIntentRastreo);
		}

		public void onResume() {
			super.onResume();
			// cuando se resume la actividad leo si la preferneica dle guadian esta
			// activa
			// asi seteo el boton
			if (Utils.isMyServiceRunning(GuardianService.class,
					getActivity().getApplicationContext())) {
				btnGuardian.setChecked(true);
				;
			} else {
				btnGuardian.setChecked(false);
			}
		}

		public void empezarServicio() {
			Intent guardianIntent = new Intent(this.getActivity().getApplicationContext(),
					GuardianService.class);
			getActivity().startService(guardianIntent);

		}

		public void terminarServicio() {
			Intent guardianIntent = new Intent(getActivity().getApplicationContext(),
					GuardianService.class);
			getActivity().stopService(guardianIntent);
		}
		

}
